//实现一个泛型类：
//方法一：包含一个泛型方法：可以进行找到一个数组中元素的最大值；
class Alg1<T extends Comparable<T>>{
    public T findMaxArray1(T[] array){
        T max= array[0];
        for(int i=0;i< array.length;i++){
            if(array[i].compareTo(max)>0){
                max=array[i];
            }
        }
        return max;
    }
}
//方法二：使用一个普通类进行，包含一个泛型方法进行查找数组元素中的最大值；
class Alg2{
    public <T extends Comparable<T>> T fidMaxArray2(T[] array){
        T max=array[0];
        for(int i=0;i<array.length;i++){
            if(array[i].compareTo(max)>0){
                max=array[i];
            }
        }
        return max;
    }
}
//方法三：静态方法的使用；
class Alg3{
    public static <T extends Comparable<T>> T fidMaxArray3(T[] array){
        T max=array[0];
        for(int i=0;i<array.length;i++){
            if(array[i].compareTo(max)>0){
                max=array[i];
            }
        }
        return max;
    }
}
public class text1 {
    public static void main1(String[] args){
        Alg1<Integer> alg1=new Alg1<>();
        Integer[] array={1,3,4,5,5,3,9};
        int ret1= alg1.findMaxArray1(array);
        System.out.println(ret1);
    }
    public static void main2(String[] args) {
        Alg2 alg2=new Alg2();
        Integer[] array2={1,3,4,5,8,3};
        int ret2=alg2.fidMaxArray2(array2);
        System.out.println(ret2);

    }
    public static void main(String[] args) {
        Integer[] array3={1,3,4,5,8,3};
        int ret3=Alg3.fidMaxArray3(array3);
        System.out.println(ret3);

    }
}
